import { ref } from 'vue'
import { defineStore } from 'pinia'
import { loginAPI } from '@/apis/user'
import { useCartStore } from './cartStore'
import { mergeCartAPI } from '@/apis/cart'
export const useUserStore = defineStore(
    'users',
    () => {
        const cartStore = useCartStore()
        // 1.定义管理用户数据 的state
        const userInfo = ref(0)
        // 2.定义获取接口数据的action方法
        const getUserInfo = async ({ account, password }) => {
            const res = await loginAPI({ account, password })
            userInfo.value = res.result
            // 合并购物车的操作
            await mergeCartAPI(
                cartStore.cartList.map((item) => {
                    return {
                        skuId: item.skuId,
                        selected: item.selected,
                        count: item.count
                    }
                })
            )
            cartStore.updateNewList()
        }
        // 退出时清除用户信息
        const clearUserInfo = () => {
            userInfo.value = {}
            // 清除购物车
            cartStore.clearCart()
        }
        // 3.以对象的格式把state和action 的数据和方法 return出去

        return { userInfo, getUserInfo, clearUserInfo }
    },
    {
        persist: true
    }
)
